package com.wangcanxuan.www.service;

import com.wangcanxuan.www.annotation.Transaction;
import com.wangcanxuan.www.entity.dto.ResultInfo;
import com.wangcanxuan.www.entity.po.User;

import java.util.List;

/**
 * 申请业务类
 *
 * @author HHLJ
 * @date 2022/04/08
 */
public interface ApplyService {
    /**
     * 实现申请部落业务
     *
     * @param user      用户
     * @param tribeName 部落的名字
     * @return {@link ResultInfo}<{@link ?}>
     */
    @Transaction
    ResultInfo<String> applyTribe(User user, String tribeName);

    /**
     * 实现获得审核表业务
     *
     * @param tribeId   部落id
     * @param pageCount 页面数
     * @return {@link ResultInfo}<{@link List}<{@link User}>>
     */
    ResultInfo<List<User>> selectApplyListByTribeId(String tribeId, int pageCount);

    /**
     * 实现审批申请业务
     *
     * @param user           用户
     * @param status         状态
     * @param chooseUserName 选择用户名
     * @return {@link ResultInfo}<{@link ?}>
     */
    @Transaction
    ResultInfo<Boolean> solveApply(String chooseUserName, User user, int status);
}
